package com.vtmer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vtmer.entity.Progress;
import com.vtmer.entity.RegistrationForm;

import java.util.List;

/**
 * @author Xinjie
 * @create 2022/9/26 10:37
 */
public interface RegistrationFormService extends IService<RegistrationForm> {
    /**
     * 学生填写报名表信息
     *
     * @param registrationForm 报名表
     * @return 是否注册过
     */
    boolean reg(RegistrationForm registrationForm);

    /**
     * 根据用户id获取报名信息
     *
     * @param uid 用户id
     * @return 返回报名表信息, 若没有报名则返回null
     */
    RegistrationForm getFormByUid(int uid);

    /**
     * 管理员获取报名信息列表
     *
     * @return 返回报名列表
     */
    List<RegistrationForm> getFormList();

    /**
     * 管理员根据组别查询报名表信息
     *
     * @param groups 组别
     * @return 返回根据组别查询到的报名信息
     */
    List<RegistrationForm> getFormByGroup(String groups);

    /**
     * 用户填写报名表
     *
     * @param uid 用户账号
     * @return 返回报名表
     */
    RegistrationForm getRegistrationFormById(int uid);

    /**
     * 管理员根据姓名获取报名信息
     *
     * @param name 姓名
     * @return 报名表
     */
    RegistrationForm getRegistrationFormByName(String name);

    /**
     * 管理员根据学号获取报名信息
     *
     * @param studId 学号
     * @return 报名表
     */
    RegistrationForm getRegistrationFormByStudId(String studId);

    void updateRegFormInfo(String studId,int state,int fail);

    RegistrationForm getProgressByStudIdAndName(long studId);

}
